import pandas as pd

#######################
# 1. 读取原始 CSV
#######################
medal_counts_df = pd.read_csv('F:/25MCM_C/C_data/summerOly_medal_counts_cleaned.csv', encoding='latin1')
athletes_df     = pd.read_csv('F:/25MCM_C/C_data/summerOly_athletes.csv',           encoding='latin1')
host_df         = pd.read_csv('F:/25MCM_C/C_data/summerOly_hosts.csv',            encoding='latin1')
#比赛结束前最后一天售后群发布无水印可视化结果+无标注代码【可直接提交】为了防止倒卖， 论文写作过程中遗留数个致命问题，无关代码，该问题解决方式仅在官网授权售后群答疑，盗卖方式购买资料不提供答疑，感谢理解 美赛资料助攻购买链接+说明https://docs.qq.com/doc/p/f3dc6bffbf4dab58dbdfd3e5e5de18a2ad974216
#######################
# 2. 筛选所需列
#######################
# medal_counts_df 中只保留: [NOC, Year, Gold, Silver, Bronze, Total]
medal_counts_df = medal_counts_df[['NOC','Year','Gold','Silver','Bronze','Total']]

# athletes_df 中只保留: [NOC, Year, Sport, Event, Medal]
#   (假设其中 Event=“Football Men's Football”，Medal=“Gold/No medal/etc.”)
athletes_df = athletes_df[['NOC','Year','Sport','Event','Medal']]

# host_df 中只保留: [Year, NOC], 并将其重命名为 host
host_df.columns = host_df.columns.str.strip().str.upper()
host_df = host_df[['YEAR','NOC']].rename(columns={'NOC':'host'})  # year->YEAR, noc->host
# 这样 host_df 形如: [Year, host]
#比赛结束前最后一天售后群发布无水印可视化结果+无标注代码【可直接提交】为了防止倒卖， 论文写作过程中遗留数个致命问题，无关代码，该问题解决方式仅在官网授权售后群答疑，盗卖方式购买资料不提供答疑，感谢理解 美赛资料助攻购买链接+说明https://docs.qq.com/doc/p/f3dc6bffbf4dab58dbdfd3e5e5de18a2ad974216
#######################
# 3. 合并 athletes_df + medal_counts_df
#######################
df_merged = pd.merge(
    athletes_df,
    medal_counts_df,
    on=['NOC','Year'],
    how='left'
)

#######################
# 4. 再合并
#######################
df_merged = pd.merge(
    df_merged,
    host_df,#比赛结束前最后一天售后群发布无水印可视化结果+无标注代码【可直接提交】为了防止倒卖， 论文写作过程中遗留数个致命问题，无关代码，该问题解决方式仅在官网授权售后群答疑，盗卖方式购买资料不提供答疑，感谢理解 美赛资料助攻购买链接+说明https://docs.qq.com/doc/p/f3dc6bffbf4dab58dbdfd3e5e5de18a2ad974216
    left_on='Year',
    right_on='YEAR',
    how='left'
)
df_merged.drop(columns='YEAR', inplace=True, errors='ignore')

#######################
# 5. 清理
#######################
final_cols = [
    'Year','NOC','Sport','Event','Medal',
    'Gold','Silver','Bronze','Total','host'
]

df_merged = df_merged[[c for c in final_cols if c in df_merged.columns]]

#######################
# 6. 简单清洗
#######################
df_merged.fillna(0, inplace=True)

df_merged.replace("??", 0, inplace=True)

#######################
# 7. 输出结果
#######################
df_merged.to_csv('F:/25MCM_C/C_data/merged1.csv', index=False)
print("Done! 'merged1.csv' saved with columns:", list(df_merged.columns))
print(df_merged.head(10))
#比赛结束前最后一天售后群发布无水印可视化结果+无标注代码【可直接提交】为了防止倒卖， 论文写作过程中遗留数个致命问题，无关代码，该问题解决方式仅在官网授权售后群答疑，盗卖方式购买资料不提供答疑，感谢理解 美赛资料助攻购买链接+说明https://docs.qq.com/doc/p/f3dc6bffbf4dab58dbdfd3e5e5de18a2ad974216